home *** CD-ROM | disk | FTP | other *** search
/ DOpus Plus / DOpus Plus.iso / Tutorial / ARexx Tutorial / TuteRexx / SLCH.dopus5 < prev    next >
Text File  |  1998-09-26  |  2KB  |  72 lines

  1. /*
  2. $VER: SLCH.dopus5 1.0 (26.9.98)
  3. Simple Lister Custom Handler
  4. */
  5. signal on error
  6. signal on syntax
  7. signal on halt
  8. signal on break_c
  9.  
  10. address DOPUS.1
  11. options results
  12. options failat 11
  13.  
  14. dopus front
  15.  
  16. if ~show('l','rexxsupport.library') then
  17.   call addlib('rexxsupport.library',,-30)
  18.  
  19. call open('window','CON:0/12/640/240/SLCH.dopus5')
  20.  
  21. lister new
  22. handle=result
  23. lister read handle 'SYS:' force
  24. lister wait handle
  25. lister set handle handler 'SLCH-handler' subdrop quotes
  26. call openport('SLCH-handler')
  27.  
  28. /* We are going to trap everything */
  29. dopus addtrap '*' 'SLCH-handler'
  30.  
  31. do while event ~= 'inactive'
  32.   if waitpkt('SLCH-handler') then do
  33.     packet = getpkt('SLCH-handler')
  34.     if packet ~= '00000000'x then do
  35.       event = getarg(packet,0)
  36.       handle = getarg(packet,1)
  37.       name = getarg(packet,2)
  38.       user = getarg(packet,3)
  39.       pathstr = getarg(packet,4)
  40.       arguments = getarg(packet,5)
  41.       qualifier = getarg(packet,6)
  42.       deststr = getarg(packet,7)
  43.  
  44.       call writeln('window','--------------------')
  45.       call writeln('window','Arg0 (event)       =' event)
  46.       call writeln('window','Arg1 (handle)      =' handle)
  47.       call writeln('window','Arg2 (name)        =' name)
  48.       call writeln('window','Arg3 (user)        =' user)
  49.       call writeln('window','Arg4 (path)        =' pathstr)
  50.       call writeln('window','Arg5 (arguments)   =' arguments)
  51.       call writeln('window','Arg6 (qualifier)   =' qualifier)
  52.       call writeln('window','Arg7 (destination) =' deststr)
  53.       end
  54.     call reply(packet,0)
  55.     end
  56. end
  57.  
  58. /* remove all traps for my handler */
  59. error:
  60. syntax:
  61. halt:
  62. break_c:
  63. dopus remtrap '*' 'SLCH-handler'
  64. call closeport('SLCH-handler')
  65. if rc = 0 then call delay(100)
  66. call close('window')
  67. if rc ~= 0 then do
  68.   text = 'Error: 'rc', 'errortext(rc)' in line 'sigl'.'
  69.   dopus request '"'text'" OK'
  70.   end
  71. exit
  72.